// 写层序遍历用
import java.util.Queue;
import java.util.LinkedList;

public class BinaryTree<T> {
	public Node root;

	BinaryTree(){
		root = null;
	}

	void insert(T val){}

	/*
	*        10
	*     5      15
	*   3   7  12   20
	* preOrder: 10 5 3 7 15 12 20
	*/
	public void preOrder(){
		preOrderTraversal(root);
	}

	private void preOrderTraversal(Node tree){
		if(tree != null) {
			// root.value // 10 打印自身
			System.out.print(tree.value);
			System.out.print(" ");

			// 打印10左子树
			preOrderTraversal(root.left)
			// root.left.value        // 5
			// root.left.left.value   // 3
			// root.left.right.value  // 7
			
			// 打印右子树
			preOrderTraversal(root.right)  
	        // root.right.value       // 15
	        // root.right.left.value  // 12
	        // root.right.right.value // 20
		}
	}


	public void inOrder(){}
	public void postOrder(){}
	public void level(){}
}